/*
 *    Copyright © OpenAtom Foundation.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

package com.inspur.edp.bef.bemanager.lowcode;

import io.iec.edp.caf.tenancy.api.entity.Tenant;
import java.util.function.Consumer;

public class BSessionUtil {

  public static void wrapFirstTenantBSession(Consumer<Tenant> consumer) {
//        ICafSessionService service = SpringBeanUtils.getBean(ICafSessionService.class);
//        ITenantService tenantService = SpringBeanUtils.getBean(ITenantService.class);
//        final String lang = "zh".concat("-CHS");
//        List<Tenant> tenants = tenantService.getAllTenants(lang);
//        if(tenants == null || tenants.isEmpty()) {
//            throw new RuntimeException("不存在有效的租户");
//        }
//
//        CafSession oldSession = CAFContext.current.getCurrentSession();
//        if(oldSession != null) {
//            clearSession();
//        }
//        try {
//            final String user = "ad".concat("min");
//            for (int i = 0; i<tenants.size(); ++i) {
//                Tenant tenant = tenants.get(i);
//                clearSession();
//                CafSession cafSession = service.create(tenant.getId(), user, lang, new HashMap<>(), SessionType.backend);
//                CAFSessionThreadHolder.setCurrentSession(cafSession);
//                ICAFContextService contextService = SpringBeanUtils.getBean(ICAFContextService.class);
//                contextService.setCurrentSU("Bcc");
//
//                consumer.accept(tenant);
//            }
//        } finally {
//            clearSession();
//        }
  }

  private static void clearSession() {
//        CAFSessionThreadHolder.purge();
//        SecurityContextHolder.clearContext();
  }
}
